<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>购物车</title>
    <style>
      thead {
        background-color: #f5f5f5;
      }
      th,
      td {
        border: 1px solid #aaa;
        padding: 8px 12px;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>编号</th>
          <th>书籍名称</th>
          <th>出版日期</th>
          <th>价格</th>
          <th>购买数量</th>
          <th>操作</th>
        </tr>
      </thead>
    </table>
    <h2 class="price">总价格:¥<span class="price-count">0</span></h2>
    <script>
      //1.先拿到数据
      let books = [
        {
          id: 1,
          name: '《算法导论》',
          date: '2006-09',
          price: 85.0,
          count: 3,
        },
        {
          id: 2,
          name: '《UNIX编程艺术》',
          date: '2006-02',
          price: 59.0,
          count: 2,
        },
        {
          id: 3,
          name: '《编程珠玑》',
          date: '2008-10',
          price: 39.0,
          count: 5,
        },
        {
          id: 4,
          name: '《代码大全》',
          date: '2006-03',
          price: 128.0,
          count: 8,
        },
      ];
      var table = document.querySelector('table');
      var tbody = document.createElement('tbody');
      table.append(tbody);
      var price = document.querySelector('.price-count');
      for (var item of books) {
        var tr = document.createElement('tr');
        for (var k in item) {
          var td = document.createElement('td');
          td.textContent = item[k];
          tr.append(td);
        }
        var del = document.createElement('td');
        del.innerHTML = `<button class="delKey">删除</button>`;
        tr.append(del);
        tbody.append(tr);
      }
      // 删除
      tbody.addEventListener('click', function (e) {
        if (e.target.className === 'delKey') {
          e.target.parentNode.parentNode.remove();
          count() //删除后调用
        }
      });
      // 总价
      function count() {
        var trs = [...document.querySelectorAll('tbody tr')];
        var res = trs.reduce((prev, ele) => {
          // console.log(ele);
          return (
            prev + ele.children[3].textContent * ele.children[4].textContent
          );
        }, 0);
        price.textContent = res;
      }
      count() //调用
    </script>
  </body>
</html>
